﻿<?php
/**
 * 定义如何处理管理员关于用户请求
 *
 * @author kinet
 * @time 2010-9-14 2010-9-14
 * @version 1.0
 */
class user_process {
	/**#@+
         * @access private
	 */

	/**
	 * 保存数据库连接.
	 * 
	 * @var object MDB2
	 */
	private $db ;
	
	/**
	 * 保存用户从页面提交而来的
	 * 信息.
	 * 
	 * @var array
	 */
	private $request ;

	/**
	 * 保存数据库中user表对应的
	 * 对象.
	 * 
	 * @var object db_obj_user
	 */
	private $db_obj_user ;

	/**
	 *
	 * @access public
	 * @param MDB2 $db 
	 * @param array $string 
	 * @return bool
	 */
	function __construct( $db , $request=null ){
		
		$this->db = $db ;		
		$this->db_obj_user = new db_obj_user( $db );
		
		if ( !empty( $request ) ){
		
			$this->request = $request ;
			foreach( $request as $k => $v ){

				$this->db_obj_user->set( $k , $v );
			}
		}

	}

	/**
	 * 委托db_obj_user中的save()方法
	 *
	 * @access public
	 */
	function save(){

		return  $this->db_obj_user>save() ;
	}
	
	/**
	 * 委托db_obj_user中的get()方法
	 *
	 * @access public
	 * @see db_obj
	 */
	function get( $k ){

		return $this->db_obj_user->get( $k ) ;
	}

	/**
	 * 委托db_obj_user中的set()方法
	 * 
	 * @access public
	 * @see db_obj
	 */
	function set( $k , $v ){

		return $this->db_obj_user->set( $k , $v ) ;
	}

	/**
	 * 委托db_obj_user中的load()方法
	 *
	 * @access public
	 * @see db_obj
	 */
	function load( $k , $v ){
		
		return  $this->db_obj_user->load( $k , $v ) ;
	}

	/**
	 * 返回所有的用户信息
	 * 
	 * @access public
	 * @param MDB2 $db 
	 * @return array $rows 
	 */
	static function get_all( $db ){

		$sql = "SELECT * FROM user" ;
		$res = $db->query( $sql ); 
		if (PEAR::isError($res)) {
			throw new Exception( '获得用户列表出错'.$res->getMessage() );
		}

		if ( $res->NumRows() >= 1 ){
			
			$rows = $res->fetchAll(MDB2_FETCHMODE_ASSOC) ;
			return $rows ;
		
		}else{
			
			return false ;	
		}
	}
		static function search_all( $db,$search ){

		$sql = "SELECT * FROM user Where username like '%".$search."%'" ;
		$res = $db->query( $sql ); 
		if (PEAR::isError($res)) {
			throw new Exception( '获得用户列表出错'.$sql.$res->getMessage() );
		}

		if ( $res->NumRows() >= 1 ){
			
			$rows = $res->fetchAll(MDB2_FETCHMODE_ASSOC) ;
			return $rows ;
		
		}else{
			
			return false ;	
		}
	}
    static function delete_by_username( $db,$username ){
		$sql = "DELETE FROM user WHERE username ='".$username."'" ;
		$res = $db->query( $sql ); 
		if (PEAR::isError($res)) {
			throw new Exception( '删除出错'.$res->getMessage() );
		}
	}

}

